110 DLAY = 40:FMAX = 24: DIM FACE%(5,FMAX),SS%(FMAX):FMAX = 12: DATA 32,74,255,173,48,192,136,208,5,206,1,3,240,9,202,208,245,174,0,3,76,5,3,32,63,255,96: FOR X = 770 TO 796: READ Y: POKE X,Y: NEXT
170 BAD%(1) = 127:BAD%(2) = 120:BAD%(3) = 85: DATA 191,191,161,127,95,120,127,143,161,170, 191,161,120,95: DIM DRTHY%(13): FOR X = 0 TO 13: READ DRTHY%(X): NEXT : DATA BYSTANDER,EYE WITNESS,STAR WITNESS,EAGLE-EYE: DIM LVL$(3): FOR X = 0 TO 3: READ LVL$(X): NEXT
210 L$ = "HBCDFGWZLMNPRSTVKAE": DATA A,E,I,O,U,EE,EA,OA,OO,AI,IA,IE,OU,AU,OI,OY, E,ER,ELL,ICK,ING,COCK,WOOD,ORTH,MAN,SON,STEIN,SKY,BY,LY,MORE,: DIM LS$(16,2): FOR Y = 1 TO 2: FOR X = 1 TO 16: READ LS$(X,Y): NEXT : NEXT : GOSUB 30000
300 REM
310 INVERSE : GOSUB 2000: VTAB 23: HTAB 1: PRINT BLANK$;:SC = 0:FACES = 0:N = 6: IF INST THEN NORMAL : GOSUB 5700
400 REM
410 FACES = FACES +1: FOR X = 1 TO N:SS%(X) = 1: NEXT :MISSED = 0:CHOICE = 0:THIS = 0: GOSUB 5000:THIS = 1: IF NOT INST THEN GOSUB 3400
430 GOSUB 3000:THIS = 0: IF NOT INST THEN VTAB 23: HTAB 1: CALL -958: PRINT BLANK$;
440 IF MISSED THEN GOSUB 2000: GOTO 610
450 MCNT = 0: FOR PART = 1 TO 5: IF FACE%(PART,0) = FACE%(PART,CHOICE) THEN MCNT = MCNT +1
460 NEXT : IF MCNT = 5 THEN 800
610 FOR Z = 1 TO 3: FOR X = 2 TO 3: POKE 768,BAD%(X): POKE 769,20: CALL 770: NEXT : NEXT : FOR P = 1 TO 5: GOSUB 1000: NEXT : FLASH : VTAB 21: HTAB 4: PRINT LEFT$(BLANK$,13);: HTAB 5 +(6 - LEN(NAME$)/2): PRINT NAME$: HTAB 4: PRINT " RELEASED ": INVERSE : FOR Z = 1 TO 10: FOR X = 2 TO 3: POKE 768,BAD%(X): POKE 769,20: CALL 770: NEXT : NEXT : FOR X = 1 TO 1500: NEXT : NORMAL : IF SC = 0 THEN GOTO 750
700 INVERSE : VTAB 21: HTAB 20: PRINT LEFT$(BLANK$,20): HTAB 20: PRINT LEFT$(BLANK$,20): IF SC <HSC THEN 740
720 HSC = SC: VTAB 21: HTAB 29 - LEN( STR$(HSC)): FLASH : PRINT "BEST GAME $";HSC;: FOR Z = 1 TO 3: FOR Y = 0 TO 1: FOR X = 10 +Y TO 12 +Y: POKE 768,DRTHY%(X)/2: POKE 769,X *(Y +1): CALL 770: NEXT : NEXT : NEXT : GOSUB 30380
840 NEXT : VTAB 21: HTAB 1: CALL -868: NORMAL :X$ = NAME$ +" J A I L E D": HTAB 36 - LEN(X$): FOR X = 1 TO LEN(X$): PRINT MID$ (X$,X,1);:SS = PEEK(S): POKE 768,DRTHY%(5): POKE 769,5: CALL 770: NEXT : INVERSE : FOR X = 6 TO 8: FOR Y = 1 TO 100: NEXT : POKE 768,DRTHY%(X): POKE 769,35: CALL 770: NEXT : GOSUB 4000: IF NOT INST THEN INST = 1: VTAB 24: HTAB 1: CALL -868: NORMAL : GOSUB 5700
4010 VTAB 22: HTAB 1: PRINT BLANK$;BLANK$;:Z = SC +N *(LVL +1): FOR X = SC TO Z: VTAB 23: HTAB 31 - LEN( STR$(X)): PRINT "REWARDS $";X: POKE 768,DRTHY%(9): POKE 769,4: CALL 770: NEXT :SC = Z: RETURN
5000 REM
5010 FOR THIS = 0 TO N: FOR PART = 1 TO 5:FACE%(PART,THIS) = INT( RND(1) *MAX) +1: NEXT : NEXT :MTCH = INT( RND(1) *N) +1: FOR PART = 1 TO 5:FACE%(PART,MTCH) = FACE%(PART,0): NEXT :NAME$ = MID$ (L$,FACE%(1,0) +3,1) +"." + MID$ (L$,FACE%(2,0),1) +LS$((FACE%(3,0)),1) + MID$ (L$,FACE%(4,0) +1,1) +LS$((FACE%(5,0)),2)
5050 GOSUB 2000: VTAB 21: HTAB 1: PRINT BLANK$;: VTAB 21: HTAB 7: PRINT "WANTED": HTAB 5: PRINT "REWARD $";N *(LVL +1):THIS = 0: FOR P = 1 TO 5: GOSUB 1000: NEXT : FOR X = 1 TO 5: FOR Y = 1 TO 2: POKE 768,BAD%(Y): POKE 769,5: CALL 770: NEXT : POKE 768,BAD%(2): POKE 769,10: CALL 770: NEXT : GOSUB 5200: GOSUB 2000: VTAB 21: HTAB 1: PRINT BLANK$;: GOSUB 5300: RETURN
5200 REM
5205 ON LVL +1 GOTO 5210,5220,5230,5240
5210 FOR X = 1 TO 3000: NEXT : RETURN
5220 FOR X = 1 TO 3000 -125 *N: NEXT : RETURN
5230 FOR X = 1 TO 1500: NEXT : RETURN
5240 FOR X = 1 TO 1500 -62.5 *N: NEXT : RETURN
5300 REM
5305 ON LVL +1 GOTO 5390,5390,5370,5360
5360 ZZ = FMAX -6: IF FACES <ZZ +1 THEN 5380
5370 ZZ = N +FACES
5380 FOR Z = 1 TO ZZ: POKE 768,255: POKE 769,5: CALL 770: FOR Y = 1 TO 100: NEXT : NEXT
5390 RETURN
5500 REM
5520 IF N = FMAX AND LVL <3 THEN LVL = LVL +1: POKE 799,LVL: GOSUB 5600:N = 6: GOTO 5540
5530 FOR X = 1 TO 2000: NEXT :N = N +1: IF N >FMAX THEN N = FMAX
5540 RETURN
5600 REM
5605 FACES = 0: IF LVL = 3 THEN FMAX = 24
5610 FLASH : GOSUB 5700: FLASH : GOSUB 5720: FOR Z = 1 TO 3: FOR Y = 0 TO 1: FOR X = 10 +Y TO 12 +Y: POKE 768,DRTHY%(X)/2 ^(LVL -1): POKE 769,X *(Y +1): CALL 770: NEXT : NEXT : NEXT : NORMAL : GOSUB 5700: INVERSE : GOSUB 5720: VTAB 24: HTAB 28: NORMAL : PRINT "PRESS ";: FLASH : PRINT "RETURN";: VTAB 1
5670 GET ANS$:KEY = ASC(ANS$) +128: GOSUB 9000: IF ANS$ < > CHR$(13) THEN 5670
30050 FILE$ = "SHAPE LENGTHS." +V$: PRINT D$;"OPEN ";FILE$;",D1": PRINT D$;"READ ";FILE$: INPUT MAX: DIM PART%(5,MAX): FOR X = 1 TO MAX: FOR PART = 1 TO 5: INPUT PART%(PART,X)
30130 NEXT : NEXT : PRINT D$;"CLOSE":X$ = "READ": GOSUB 31000: INPUT PL%:: FOR X = 0 TO 3: INPUT OSC%(X): NEXT : PRINT D$;"CLOSE": PRINT :HSC = PL%: RETURN
30380 IF HSC < = PL% THEN 30400
30390 PL% = HSC: NORMAL :X$ = "WRITE": GOSUB 31000: PRINT PL%: FOR X = 0 TO 3: PRINT OSC%(X): NEXT : PRINT D$;"CLOSE": PRINT : INVERSE